package com.fbooks.service;

import com.alibaba.fastjson.JSONObject;
import com.fbooks.bean.User;
import com.fbooks.utils.email.Impl.AccountEmailException;

import java.util.List;

/**
 * @Author: LuoRunFeng
 * @e-mail: 475403147@qq.com
 * @Time: 2020/4/16 20:29
 * @Version 1.0
 */
public interface UserService {

    /**
     *获取所有用户信息
     * @return
     */
    List<User> getAllUser();

    /**
     * 用户登录
     * @param email
     * @param password
     * @return
     */

    JSONObject getUserInfo(String email, String password);

    /**
     * 用户注册
     * @param user
     * @return
     */
    JSONObject saveUserInfo(User user);

    /**
     * 更新用户信息
     * @param user
     * @return
     */
    JSONObject updateUserInfo(User user);

    /**
     * s删除用户信息
     * @param id
     * @return
     */
    JSONObject deleteUserInfo(String id);

    /**
     * 根据email 来判断用户是否存在
     * @param email
     * @return
     */
    boolean getUserInfoByEmail(String email);

    /**
     * 发送邮件
     * @param email
     * @throws AccountEmailException
     */
    JSONObject sendEmail(String email)throws AccountEmailException;

    /**
     * 通过token获取用户信息
     * @param token
     * @return
     */
    JSONObject getUserInfo(String token);


    /**
     * 根据用户id查询用户
     * @param id
     * @return
     */
    User getUserInfoById(String id);

    /**
     * 更新头像
     * @param user
     */
    void updateAvatar(User user);

    /**
     * 修改密码
     * @param user
     * @return
     */
    JSONObject updatePassword(User user);

    /**
     * 通过token获取用户信息
     * @param token
     * @return
     */
    User getUserInfoByToken(String token);

    User selectUserInfoById(String id);

    void deleteUser(String id);
}
